package persistencia.entidades;

import java.util.List;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.validation.constraints.NotNull;

/**
 * @author Maciel Melo
 * @since 09/11/2013
 * @see macielmelo.eti.br
 */
@SuppressWarnings("javadoc")
@Entity(name = "supervisor")
public class Supervisor {
	@Id
	@SequenceGenerator(sequenceName = "public.seq_supervisor", name = "seq_supervisor", allocationSize = 1)
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "seq_supervisor")
	private Long id;

	@NotNull
	private String nome;
	@NotNull
	private String email;
	@NotNull
	private String curso;

	// ------------Relacionamento---------//

	@OneToMany(mappedBy = "supervisor")
	private List<Atendente> atendente;

	@OneToMany(mappedBy = "supervisor")
	private List<Consulta> consultas;

	// -----------------------------------//

	public Supervisor(Long id, String nome, String email, String curso,
			List<Atendente> atendente, List<Consulta> consultas) {
		this.id = id;
		this.nome = nome;
		this.email = email;
		this.curso = curso;
		this.atendente = atendente;
		this.consultas = consultas;
	}

	public Supervisor() {
	}

	public Supervisor(Supervisor supervisor) {
		this.id = supervisor.getId();
		this.nome = supervisor.getNome();
		this.email = supervisor.getEmail();
		this.curso = supervisor.getCurso();
		this.atendente = supervisor.getAtendente();
		this.consultas = supervisor.getConsultas();
	}

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getCurso() {
		return curso;
	}

	public void setCurso(String curso) {
		this.curso = curso;
	}

	public List<Atendente> getAtendente() {
		return atendente;
	}

	public void setAtendente(List<Atendente> atendente) {
		this.atendente = atendente;
	}

	public List<Consulta> getConsultas() {
		return consultas;
	}

	public void setConsultas(List<Consulta> consultas) {
		this.consultas = consultas;
	}
}
